#include <iostream>  
using namespace std;  

#define N 210  
int cost[N][N];  
int m[N];  

int main()  
{  
    int n,i,j;  
    cin >> n;

    if(n <= 1)
        return 0;

    // 记录从站点 i 到站点 j 的费用: cost[i][j]
    for(i=1;i<n;i++)  
        for(j=i+1;j<=n;j++)  
            cin>>cost[i][j];  

    // 数组 m[i] 记录从站点 1 到站点 i 的最小租金
    // m[1]的租金是已知的：0
    // m[i]的租金 = min{ cost[1][i], m[j]+cost[j][i] }
    m[1]=0; 
    for(i=2; i<=n; i++)  
    { 
        int min = cost[1][i];  
        for(j=1; j<=i-1; j++)  
        {  
            int tmp = m[j]+cost[j][i]; 
            min = tmp<min ? tmp : min;  
        }  
        m[i]=min;
    } 

    cout << m[n] << endl;  
    
    return 0;  
}  